/*------------------------------------------------------------------*/
/*																	*/
/*							Classement.c							*/
/* 																	*/
/* 																	*/
/*------------------------------------------------------------------*/
#include "classement.h"


/*------------------------------------------------------------------*/
/*																	*/
/*						fonctions du module							*/
/* 							classement								*/
/* 																	*/
/*------------------------------------------------------------------*/


void tri_insertion(int tab[], int taille)
{
/*initialisation des variables*/
	int i;
	int j;
	int elem;
   
/*debut de la boucle de tri*/
   for (i = 1; i < taille; ++i) 
   {
       elem = tab[i];
       for (j = i; j > 0 && tab[j-1] > elem; j--)
			tab[j] = tab[j-1];
			tab[j] = elem;
   }
}

void SaisieScore(int score)
{
		/*initialisation des variables*/
		int i= 0;
		int score0 = 0;
		int score1 = 0;
		int score2 = 0;
		int score3 = 0;
		int a;
		int tab[5];
		
		/*initialisation du pointeur sur fichier*/
		FILE* fichier = NULL;
		
		/*ouverture du fichier en mode lecture*/
		fichier = fopen("score.txt", "r");
		
		/*lecture des 4 premieres valeurs du fichier*/
		fscanf(fichier, "%d %d %d %d", &score0, &score1, &score2, &score3);
	
	/*remplissage du tableau avec les valeurs recuperee dans le fichier*/
		tab[0]=score0;
		tab[1]=score1;
		tab[2]=score2;
		tab[3]=score3;
		tab[4]=score;
		
		/*tri du tableau que l'on vient de remplir*/
		tri_insertion(&tab, 5);
		
		/*Fermeture du fichier*/
		fclose(fichier);
		
		/*on réouvre le fichier en mode ecriture cette fois*/
		fichier = fopen("score.txt", "w");
		
		/* On defini i = 4 pour la boucle*/
		i = 4;
		
		while (i>=0)
		{
			 /*recuperation de la valeur du tableau dans une variable*/
			a = tab[i];
			
			 /*ecriture de la variable dans le fichier*/
			fprintf(fichier,"%d\n",a);
			
			/*decrementation de i*/
			i--;
		}
		/*fermeture du fichier*/
		fclose(fichier);
}
    

int meilleurScore(int valScore)
{
		/*initialisation des variables*/
		int i=0;
		int score = 0;
		
		/*pointeur vers fichier*/
		FILE* fichier = NULL;
		
		/*ouverture du fichier en mode lecture*/
		fichier = fopen("score.txt", "r");
		
		/*lecture de la premiere valeur du fichier*/
		/*fichier deja trié donc la premiere valeur est la plus forte*/
		fscanf(fichier, "%d" ,&score );		
		
		/*Si la premiere valeur que l'on a est plus grande que celle */
		/*du fichier, on retourne 1, sinon on retourne 0*/
		
		if (valScore > score)
		{
			return 1;
		}
		else 
		{
			return 0;
		}
		
		/*Fermeture du fichier*/
		fclose(fichier);
			
}

void initScore()
{
	/*Pointeur sur fichier*/
	FILE* fichier = NULL;
	
	/*ouverture du fichier en mode ecriture*/
	fichier = fopen("score.txt", "w");
	
	/*initialisation des variables*/
	int i;
	
	/*debut de la boucle*/
	for (i=0; i<5; i++)
	{
		fprintf(fichier,"%d\n",0);
	}
	
	/*fermeture du fichier*/
	fclose(fichier);
}
